package pms.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import pms.dao.FeiertagDao;
import pms.om.Feiertag;

/**
 * <p>
 * Ein Controller, der die Feiertage editiert
 * </p>
 * <p>
 * ModelAndView Infos
 * <p>
 * Es wird ein Feiertag anhand seiner ID gesucht, falls es diesen gibt,
 * wird dieser geaendert, ansonsten wird ein neuer Feiertag angelegt.
 * <ul>
 * <li>title: Ueberschrift dieser View</li>
 * <li>message: Hinweise fuer den Benutzer</li>
 * <li>feiertag: hier wird der gesuchte Feiertag ausgegeben, falls er 
 * schon angelegt ist, ansonsten wird ein neuer Feiertag angelegt.</li>
 * </ul>
 * Der Name der ausgebenden View ist: 'editFeiertag.jsp'
 * </p>
 * @see FeiertagDao
 */

public class EditFeiertag extends AbstractController {

	private FeiertagDao feiertagDao;
	
	public void setFeiertagDao(FeiertagDao feiertagDao) {
		this.feiertagDao = feiertagDao;
	}

	protected ModelAndView handleRequestInternal(
			HttpServletRequest httpServletRequest,
			HttpServletResponse httpServletResponse) throws Exception {
		ModelAndView mv = new ModelAndView();
		try {
			int id = Integer.parseInt(httpServletRequest.getParameter("id"));
			// wenn id nicht geparsed werden kann, dann wird ein neues Objekt angelegt
			mv.addObject("title", "Feiertag ändern");
			mv.addObject("message", "Hier können Sie die Eigenschaften des Feiertages ändern. Klicken Sie dann anschließend auf Übernehmen.");
			mv.addObject("feiertag", feiertagDao.findById(id));
		} catch (NumberFormatException e) {
			mv.addObject("title", "Neuen Feiertag eintragen");
			mv.addObject("message", "Bitte geben Sie die Eigenschaften des Feiertages ein und klicken Sie anschließend auf 'Übernehmen'.");
			mv.addObject("feiertag", new Feiertag());
		}
		mv.setViewName("editFeiertag");
		return mv;
	}
}